// 请补全JavaScript代码，要求以数组的形式返回字符串参数的所有排列组合。
// 注意：
// 1. 字符串参数中的字符无重复且仅包含小写字母
// 2. 返回的排列组合数组不区分顺序
/**
 * 获取字符串的所有排列组合
 * @param {string} str - 输入字符串，无重复字符
 * @returns {string[]} - 所有可能的排列组合数组
 */
const _permute = (string = "") => {
  const res = [];
  const len = string.length;
  if (len === 0) return res;
  if (len === 1) return [string];

  for (let i = 0; i < len; i++) {
    const cur = string[i];
    const remain = string.slice(0, i) + string.slice(i + 1, len);
    const remain_permute = _permute(remain);
    for (let j = 0; j < remain_permute.length; j++) {
      res.push(`${cur}${remain_permute[j]}`);
    }
  }
  return res;
};
